 #pragma once

#define BV_SIZE 10
#define FORMAT_SIZE 1024*2
class CVString
{
public:
	CVString(void);
	~CVString(void);
	CVString(LPCTSTR Pc);
	CVString(const CVString& stl);

	void operator=(const CVString& tem);
	void operator=(LPCTSTR Pc);
	

	CVString operator+(const CVString& stl);
	CVString operator+(LPCTSTR stl);
	CVString operator+=(LPCTSTR Pc);
	CVString operator+=(const CVString& stl);
	friend CVString operator+( const CVString& str1, LPCTSTR stl2 );
	const TCHAR operator[](int n);

	bool operator>(const CVString& stl);
	bool operator<(const CVString& stl);
	bool operator==(const CVString& stl);
	bool operator!=(CVString& stl);
		
	CVString Left(int n);
	CVString Right(int n);
	CVString Mid(int n,int start = 0);
	int Find(const CVString& tup,bool flag = true,int first = -1);

	void Format( LPCTSTR pszFormat, ...);
	operator LPCTSTR();
	
	int Space(void);
	int GetLength(void)const;
private:
	TCHAR* m_string;
	int  m_size;
	int  m_bufSize;
private:
	void Clear(void);
	void SetMem(int n,int bufSize = BV_SIZE);
};
